package com.ruoyi.basedata.wxentity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * Terminals
 *
 * @author zhangjie
 */
@Data
public class Terminals implements Serializable {

    private static final long serialVersionUID = -6224201411778285449L;
    /**
     * 新表底数-表更换用
     */
    @JsonProperty("BaseReadingNew")
    @TableField(exist = false)
    private BigDecimal baseReadingNew;

    /**
     * 新IMEI-表更换用
     */
    @TableField(exist = false)
    @JsonProperty("IMEINew")
    private String imeiNew;

    /**
     * 新设备编号-表更换用
     */
    @TableField(exist = false)
    @JsonProperty("TerminalIDNew")
    private String terminalIdNew;

    /**
     * 新设备编号-表更换用
     */
    @TableField(exist = false)
    @JsonProperty("changeRemark")
    private String changeRemark;

    @JsonProperty("AreaName")
    private String areaName;
    /**
     * 自增主键
     */
    @TableId
    @JsonProperty("ID")
    private Long id;

    /**
     * 设备归属水司
     */
    @Excel(name = "设备归属水司")
    @TableField("tenant_id")
    @JsonProperty("tenantId")
    private String tenantId;

    /**
     * 区域编号
     */
    @Excel(name = "区域编号")
    @JsonProperty("AreaCode")
    private String areaCode;

    /**
     * 楼栋编号
     */
    @TableField("ld_id")
    @JsonProperty("ldId")
    private String ldId;

    /**
     * 厂家编号
     */
    @Excel(name = "厂家编号")
    @JsonProperty("SupplierID")
    private String supplierId;

    /**
     * 用户编号
     */
    @Excel(name = "用户编号")
    @JsonProperty("UserID")
    private String userId;

    /**
     * 表型号ID
     */
    @Excel(name = "表型号ID")
    @JsonProperty("TypeID")
    private String typeId;

    /**
     * 设备名称
     */
    @Excel(name = "设备名称")
    @JsonProperty("TerminalName")
    private String terminalName;

    /**
     * 设备编号
     */
    @Excel(name = "设备编号")
    @JsonProperty("TerminalID")
    private String terminalId;

    /**
     * 表底数
     */
    @Excel(name = "表底数")
    @JsonProperty("TerminalBaseNumber")
    private BigDecimal baseReading;


    /**
     * 安装日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "安装日期", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonProperty("installDate")
    private Date installDate;

    /**
     * 安装地址
     */
    @Excel(name = "安装地址")
    @JsonProperty("TerminalInstallAddr")
    private String installAddress;

    /**
     * IMEI
     */
    @Excel(name = "IMEI")
    @JsonProperty("IMEI")
    private String imei;

    /**
     * SIM卡类型
     */
    @Excel(name = "SIM卡类型")
    @JsonProperty("SIMtype")
    private String simType;

    /**
     * SIM卡号
     */
    @Excel(name = "SIM卡号")
    @JsonProperty("SIMNUM")
    private String simNum;

    /**
     * 钢印/塑封号
     */
    @Excel(name = "钢印/塑封号")
    @JsonProperty("PlasticSealNo")
    private String plasticSealNo;

    /**
     * 出厂编号
     */
    @Excel(name = "出厂编号")
    @JsonProperty("TerminalFactoryID")
    private String firstSupplierId;

    /**
     * 是否带阀控(0：否，1：是)
     */
    @Excel(name = "是否带阀控(0：否，1：是)")
    @JsonProperty("ValveControl")
    private Integer valveControl;

    /**
     * 阀门地址
     */
    @Excel(name = "阀门地址")
    @JsonProperty("ValveCtrlWareAddr")
    private String valveAddress;

    /**
     * 月冻结日期1-28
     */
    @Excel(name = "月冻结日期1-28")
    @TableField("FreezeDate_month")
    @JsonProperty("freezedateMonth")
    private Long freezedateMonth;

    /**
     * 出厂日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonProperty("ManufactureDate")
    @Excel(name = "出厂日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date manufactureDate;

    /**
     * 口径大小
     */
    @Excel(name = "口径大小")
    @JsonProperty("Caliber")
    private String caliber;

    /**
     * 采集频率(分钟)
     */
    @Excel(name = "采集频率(分钟)")
    @JsonProperty("ReadingFrequency")
    private Long readingFrequency;

    /**
     * 上传频率(分钟)
     */
    @Excel(name = "上传频率(分钟)")
    @JsonProperty("UpFrequency")
    private Long upFrequency;

    /**
     * 用户类型
     */
    @Excel(name = "用户类型")
    @JsonProperty("UserType")
    private String userType;

    /**
     * 删除标志(0：否，1：是)
     */
    @Excel(name = "删除标志(0：否，1：是)")
    @TableLogic(value = "0", delval = "2")
    @JsonProperty("DeleteMark")
    private Long deleteFlag;

    @JsonProperty("ReMark")
    private String remark;

    /**
     * 表状态（0-停用, 1-使用）
     */
    @Excel(name = "表状态", readConverterExp = "0=停用,1=使用")
    @JsonProperty("TerminalMark")
    @TableField("TerminalMark")
    private Integer terminalMark;

    /**
     * 位置识别编号
     */
    @Excel(name = "位置识别编号")
    @TableField("location_nb")
    @JsonProperty("locationNb")
    private String locationNb;

    @TableField("communicateAddress")
    @JsonProperty("TerminalAddress")
    private String communicateAddress;

    @TableField("protocol_id")
    @JsonProperty("protocolId")
    private String protocolId;


    @JsonProperty("AgreementName")
    @TableField(exist = false)
    private String protocolName;

    @JsonProperty("voltageType")
    @TableField("voltageType")
    private String voltageType;

    @JsonProperty("meteredVoltage")
    @TableField("meteredVoltage")
    private Float meteredVoltage;

    @JsonProperty("instantaneousJsFs")
    @TableField("instantaneousJsFs")
    private String instantaneousJsFs;

    @JsonProperty("deviceId")
    @Excel(name = "AEP平台的唯一码")
    @TableField("deviceId")
    private String deviceId;


    @Excel(name = " 是否带压力功能(1为是,0为否)", readConverterExp = "0=否,1=是")
    @JsonProperty("pressureDisplay")
    @TableField("pressureDisplay")
    private Integer pressureDisplay;

    @TableField(exist = false)
    @JsonProperty("treeType")
    private Integer treeType = 4;

    /**
     * 安装日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "建档时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonProperty("createTime")
    private Date createTime;


    @TableField(exist = false)
    @JsonProperty("equipmentTypeName")
    private String typeName;

    @TableField("lng")
    @JsonProperty("Lng1")
    private String lng;

    @TableField("lat")
    @JsonProperty("Lat1")
    private String lat;
}
